import "@site/src/languages/highlight";

# Controller

**描述：**

&emsp;&emsp;用于处理游戏控制器（游戏手柄）的单例类。

## Controller.AxisName

**类型：** 枚举。

**描述：**

&emsp;&emsp;用于定义控制器轴名称的枚举。

**签名：**
```tl
enum AxisName
	"leftx"
	"lefty"
	"rightx"
	"righty"
	"lefttrigger"
	"righttrigger"
end
```

## Controller.ButtonName

**类型：** 枚举。

**描述：**

&emsp;&emsp;用于定义控制器按钮名称的枚举。

**签名：**
```tl
enum ButtonName
	"a"
	"b"
	"back"
	"dpdown"
	"dpleft"
	"dpright"
	"dpup"
	"leftshoulder"
	"leftstick"
	"rightshoulder"
	"rightstick"
	"start"
	"x"
	"y"
end
```

## isButtonDown

**类型：** 函数。

**描述：**

&emsp;&emsp;检查当前帧是否按下了按钮。

**签名：**
```tl
isButtonDown: function(self: Controller, controllerId: integer, name: ButtonName): boolean
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| controllerId | integer | 控制器ID，当连接多个控制器时从0开始递增。 |
| name | ButtonName | 要检查的按钮名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| boolean | 按钮是否被按下。 |

## isButtonUp

**类型：** 函数。

**描述：**

&emsp;&emsp;检查当前帧是否释放了按钮。

**签名：**
```tl
isButtonUp: function(self: Controller, controllerId: integer, name: ButtonName): boolean
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| controllerId | integer | 控制器ID，当连接多个控制器时从0开始递增。 |
| name | ButtonName | 要检查的按钮名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| boolean | 按钮是否被释放。 |

## isButtonPressed

**类型：** 函数。

**描述：**

&emsp;&emsp;检查按钮是否处于按下状态。

**签名：**
```tl
isButtonPressed: function(self: Controller, controllerId: integer, name: ButtonName): boolean
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| controllerId | integer | 控制器ID，当连接多个控制器时从0开始递增。 |
| name | ButtonName | 要检查的按钮名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| boolean | 按钮是否处于按下状态。 |

## getAxis

**类型：** 函数。

**描述：**

&emsp;&emsp;从给定控制器获取轴的值。

**签名：**
```tl
getAxis: function(self: Controller, controllerId: integer, name: AxisName): number
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| controllerId | integer | 控制器ID，当连接多个控制器时从0开始递增。 |
| name | AxisName | 要检查的控制器轴的名称。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| number | 轴的值范围从-1.0到1.0。 |